import request from "@/utils/request";

const WORKER_BASE_URL = "/api/v1/workers";

const WorkerAPI = {
  getPage(queryParams: WorkerPageQuery) {
    return request<any, PageResult<WorkerPageVO[]>>({
      url: `${WORKER_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  getFormData(userId: number) {
    return request<any, WorkerForm>({
      url: `${WORKER_BASE_URL}/${userId}/form`,
      method: "get",
    });
  },
  /**
   * 添加工人用户
   *
   * @param data 用户表单数据
   */
  add(data: WorkerForm) {
    return request({
      url: `${WORKER_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 修改工人用户
   *
   * @param id 用户ID
   * @param data 用户表单数据
   */
  update(id: number, data: WorkerForm) {
    return request({
      url: `${WORKER_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },
  /**
   * 批量删除用户，多个以英文逗号(,)分割
   *
   * @param ids 用户ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${WORKER_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
};

export default WorkerAPI;

export interface WorkerPageQuery extends PageQuery {
  /** 搜索关键字 */
  keywords?: string;

  /** 用户状态 */
  status?: number;

  /**性别**/
  gender?: number;
}

/** 工人分页对象 */
export interface WorkerPageVO {
  /** 用户ID */
  id: number;
  /** 用户名 */
  username?: string;
  /** 用户昵称 */
  nickname?: string;
  /** 用户头像URL */
  avatar?: string;
  /** 部门名称 */
  deptName?: string;
  /** 用户邮箱 */
  email?: string;
  /** 性别 */
  gender?: number;
  /** 手机号 */
  mobile?: string;
  /**隶属机构**/
  orgId?: string;
  orgName?: string;
  /** 用户状态(1:启用;0:禁用) */
  status?: number;
  /** 创建时间 */
  createTime?: Date;
}
/** 用户表单类型 */
export interface WorkerForm {
  /** 用户头像 */
  avatar?: string;
  /** 邮箱 */
  email?: string;
  /** 性别 */
  gender?: number;
  /** 用户ID */
  id?: number;
  /** 手机号 */
  mobile?: string;
  /** 昵称 */
  nickname?: string;
  /** 用户状态(1:正常;0:禁用) */
  status?: number;
  /** 用户名 */
  username?: string;
  orgId?: string;
  orgName?: string;
}
